import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from "../components/Login.vue"
import Home from "../components/Home.vue"
import Welcome from "../components/Welcome.vue"
import Users from "../components/user/Users.vue"
import Rights from "../components/power/Rights.vue"
import Roles from "../components/power/Roles.vue"
import Cate from "../components/goods/Cate.vue"
import Params from "../components/goods/Params.vue"
import GoodsList from '../components/goods/List.vue'
import Add from '../components/goods/Add.vue'
import Order from "../components/order/Order.vue"

Vue.use(VueRouter)

// const routes = []

// const router = new VueRouter({
//     routes
// })

// export default router

const router = new VueRouter({
    routes: [
        { path: '/', redirect: '/login' },
        { path: "/login", component: Login },
        {
            path: "/home",
            component: Home,
            redirect: '/welcome',
            children: [
                { path: '/welcome', component: Welcome },
                { path: '/users', component: Users },
                { path: '/rights', component: Rights },
                { path: '/roles', component: Roles },
                { path: '/categories', component: Cate },
                { path: '/params', component: Params },
                { path: '/goods', component: GoodsList },
                { path: '/goods/add', component: Add },
                { path: '/orders', component: Order },
            ]
        }
    ]
})

//挂载路由导航守卫：方法里面写回调函数
router.beforeEach((to, from, next) => {
    //to 将要访问的路径
    //from 代表从哪个路径跳转而来
    //next 是一个函数，表示放行
    //1.next() 放行  2.next("/login") 强制跳转

    if (to.path === '/login') return next() //用户访问的登录页，直接放行
        //用户不是访问登录页,则验证：看是否有token，有token代表登录过了
        //1.获取token
    const tokenStr = window.sessionStorage.getItem('token')
        //用户还没登录就直接在导航URL中访问home页，或者登录后把token清除了，都会强制跳转回登录页
    if (!tokenStr) return next('./login')
    next()

})

export default router